<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

  <script>
   function MyClass(){

   }

   var mc = new MyClass();
   var mc1 = new MyClass();

   //向MyClass的原型对象添加属性
   MyClass.prototype.a="a属性"

   //向MyClass的原型对象添加方法
   MyClass.prototype.sayHello = function(){
       alert("hello");

   }

   //向mc中添加a属性
   mc.a = "我是mc中的a属性"  


   console.log(MyClass.prototype) //调用构造函数的prototype属性，

    //这里通过__proto__属性来检查两个对象是否是同一个对象 结果是true
   console.log(mc.__proto__ == MyClass.prototype)

   //当我们访问对象的属性的时候会先在自身对象中查找，如果有的话直接使用，没有的话会去原型对象中查找
   console.log(mc.a) //mc中有a属性，所以会打印出mc中的a属性

   console.log(mc1.a) //mc1中没有a属性，所以会去原型对象中查找

   console.log(mc1.sayHello()) // mc1中没有sayHello方法，所以会去原型对象中查找
 

  </script>
</head>
<body>
    
</body>
</html>